package com.hongdee.crm.car.service;

import com.hongdee.crm.car.entity.TCrmCar;

import java.util.List;
import java.util.Map;

/**
 * Created by My on 2017/2/22.
 */
public interface ITCrmCarService {
    /**
     * @param start
     * @param limit
     * @return Map
     * @throws Exception
     * @desc
     * @author 徐钦勇
     */
    public Map impPage(String start, String limit, String oid) throws Exception;

    /**
     * @Name:车主车辆表
     * @Date: 2017/8/16 15:30
     * @Author: Liu XiaoLong
     */
    public Map getCarAndOwner(String start,String limit,String PlateNamber,String maintainer
            ,String maintainDate,String companyId,String dateStart,String dateStop,String uid) throws Exception;

    /**
     * 根据 实体 ID，删除记录
     *
     * @param objId
     * @return
     */
    public boolean clearById(String objId) throws Exception;

    /**
     * @param id 核销 id
     * @return
     * @throws Exception
     * @desc
     * @author 徐钦勇
     */
    public void impConfirm(String id, String uid) throws Exception;

    /**
     * @param data 核销 数据的实体
     * @return
     * @throws Exception
     * @desc
     * @author 术洪超
     */
    public void impConfirms(List<Map<Object, String>> data, String uid) throws Exception;


    /**
     * @return
     * @throws Exception
     * @desc
     * @author 术洪超
     */
    public void impConfirmAll(String uid) throws Exception;



    /**
     * @paramid 核销 数据的主键
     * @return
     * @throws Exception
     * @desc 删除多条待导入的数据
     * @author 术洪超
     */
    public void impDels(List<Map<Object, String>> data, String uid) throws Exception;

    /**
     * @return
     * @throws Exception
     * @desc 删除全部待导入数据
     * @author 术洪超
     */
    public void impDelAll(String uid) throws Exception;



    /**
     * @param
     * @return Map
     * @throws Exception
     * @desc
     * @author 徐钦勇
     */
    public Map page(String start, String limit, String uid,String companyId,String id,String key,String value) throws Exception;

    /**
     * @Name: 单车主多车辆查询
     * @Author: Liu XiaoLong
     * @Date: 2018/1/18 10:40
     * @Remark:
     */
    public Map pageList(String start, String limit, String key, String value, String uid,String companyId) throws Exception;

    /**
     * @param id       车主车辆信息
     * @param plateNum 车牌号
     * @return Map
     * @throws Exception
     * @desc 变更车牌号
     * @author 徐钦勇
     */
    public void ChangePlate(String id, String plateNum) throws Exception;

    /**
     * @param id 车主车辆信息
     * @param
     * @return Map
     * @throws Exception
     * @desc 变更送修人信息
     * @author 徐钦勇
     */
    public void ChangeSendor(String id, String name, String sex, String phone,Map map) throws Exception;

    /**
     * 查询没有质保状态或未出保的车辆信息
     *
     * @param start
     * @param limit
     * @return
     * @throws Exception
     */
    public List<Map<String, Object>> queryCarWarrantyList(int start, int limit) throws Exception;

    /**
     * 基盘车辆区域分布
     * @param uid
     * @param start
     * @param limit
     * @param map
     * @return
     * @throws Exception
     */
    public Map<String, Object> baseCar(String uid,String start,String limit,Map map ) throws Exception;

    /**
     * 基盘车辆区域分布详情
     * @return
     * @throws Exception
     */
    public Map<String, Object> baseCarDetaill(String uid,String start,String limit,String companyId,Map data) throws Exception;
    /**
     * 根据ID 获得车辆详情
     *
     * @param
     * @return
     * @throws Exception
     */
    public Map<String, Object> findById(String plateNum, String vin, String companyId) throws Exception;

    /**
     * 查询客户标签
     */
    public List<Map> carTable() throws Exception;
    //查询全部车辆
    Map appCar(String uid, String key, String value,String start,String limit) throws Exception;
    //根据车辆查询维系记录
    List carConcat(String carId) throws Exception;

    List sPhone(String vin,String uid)throws Exception;


    /**
     * 消息推送
     * @param clientId
     * @param title
     * @param text
     * @throws Exception
     */
    public void push(String clientId,String title,String text)throws Exception;

    /**
     * 任务计算器 获得车辆详情
     * @param vin
     * @param companyId
     * @return
     * @throws Exception
     */
    public Map<String,Object> getTaskCarInfo(String vin,String companyId,String type) throws Exception;
    public TCrmCar findInfoByCarId(String carId) throws Exception;

    /**
     * 新增车主档案信息
     * @param crmCar
     * @param uid
     * @return
     * @throws Exception
     */
    public void addCrmCar(Map crmCar,String uid) throws Exception;


    public com.hongdee.crm.car.entity.TCrmCar getInfoByVin(String vin,String companyId)throws Exception;

}


